<?php

if (!isset($_SESSION)) {
    session_start();
}

include_once ("Evento.php");
include_once ("Cidade.php");
include_once ("Usuario.php");
include_once ("Atividade.php");
include_once 'Precoevento.php';

class UsuarioControle extends Controle {

    function novo() {
        $resultUsuario = new Usuario();

        $cidade = array('id' => '', 'nome' => "");
        $categoria = array('id' => '', 'nome' => "");
        $grupo = array('id' => '', 'nome' => "");

        $this->set("data", $resultUsuario);
        $this->set("cidade", $cidade);
        $this->set("categoria", $categoria);
        $this->set("grupo", $grupo);

        $this->set('title_for_layout', "Novo Usuario");
    }

    function edit($id) {
        $model = new Usuario();
        $modelAtividade = new Atividade();
        $modelPrecoEvento = new Precoevento();
        $resultUsuario = new Usuario();
        $resultAtividade = array();
        $resultPreco = array();
        $cidade = array('id' => '', 'nome' => "");

        $resultUsuario = $model->find($id);
        $cidadeModel = new Cidade();

        $resultCidade = $cidadeModel->find($resultUsuario->cidade_id);
        if ($resultCidade !== FALSE) {
            $cidade['id'] = $resultCidade->id;
            $cidade['nome'] = $resultCidade->nome . " - " . $resultCidade->uf;
        }

        $resultAtividade = $modelAtividade->find2(array('conditions' => array('evento_id = ' => $id)))->fetchAll();
        $resultPreco = $modelPrecoEvento->find2(array('conditions' => array('evento_id = ' => $id),
            'fields' => array("distinct dataFim"),
            'order' => 'dataFim'));
//        $cont = count($resultAtividade);
//        if ($cont == 0){
//            $resultAtividade = array();
//        }
        //Variaveis que ficariam disponiveis na view
        $this->set("preco", $resultPreco);
        $this->set("atividade", $resultAtividade);
        $this->set("data", $resultUsuario);
        $this->set("cidade", $cidade);
        $this->set('title_for_layout', $resultUsuario->nome);

        $this->render("novo");
    }

    function salvar() {
        $model = new Usuario();
        //$modelAtividade = new Atividade();
        $resultUsuario = new Usuario();
        //$modelPrecoEvento = new Precoevento();
        //$resultAtividade = new Atividade();   
        //$resultPreco = array();
        $cidade = array('id' => '', 'nome' => "");

        $this->data['categoria_id'] = $_POST['categoria'];
        $this->data['grupo_id'] = $_POST['grupo'];

        //$_SESSION['categoria'] = $this->data['categoria_id'];

        if (!empty($this->data)) {
            //$this->data['dataInicio'] = implode("-", array_reverse(explode("/", $this->data['dataInicio'])));
            //$this->data['dataFim'] = implode("-", array_reverse(explode("/", $this->data['dataFim'])));            
            if ($model->save($this->data)) {
                $this->set('success', "Usuario nome {$this->data['nome']} salvo com sucesso.");
            } else {
                $this->set('success', "Já existe Usuario com o nome {$this->data['nome']}.");
            }

            //AQUI É SALVO UM USUARIO NO SGBD
            $model->criarUserBd($this->data['email'], $this->data['senha']);

            $resultUsuario = $model->find($this->data['id']);

            //$_SESSION['usuario_id'] = $this->data['id'];
            //$resultAtividade = $modelAtividade->find2(array('conditions' => 
            //array('evento_id = '=>$this->data['id'])))->fetchAll();

            $cidadeModel = new Cidade();
            $resultCidade = $cidadeModel->find($resultUsuario->cidade_id);
            if ($resultCidade !== FALSE) {
                $cidade['id'] = $resultCidade->id;
                $cidade['nome'] = $resultCidade->nome . " - " . $resultCidade->uf;
            }

            //$resultPreco = $modelPrecoEvento->find2(array('conditions' => array('evento_id = ' => $this->data['id']),
            //'fields' => array("distinct dataFim")));
        }

        //$this->set("preco",  $resultPreco);
        //$this->set("atividade",  $resultAtividade);
        $this->set("data", $resultUsuario);
        $this->set("cidade", $cidade);
        $this->set('title_for_layout', $resultUsuario->nome);

        $this->render("novo");
    }

    function excluir($idUsuario = NULL) {
        $model = new Usuario();
        $resultado = $model->find($idUsuario);
        //Preciso receber a confirmação se tem permissão

        if ($model->deletarSGBD($resultado->email)) {
            if ($model->delete($idUsuario)) {
                $this->set('success', "O Usuario com id {$idUsuario} foi excluido.");
            } else {
                $this->set('success', "Não foi possível excluir Usuario id: {$idUsuario}.");
            }
        }

        $resultado = $model->findAll();

        $this->set(array("resultado", "title_for_layout"), array($resultado, "Lista Usuarios - Sistema de Eventos"));
        $this->render("index");
    }

    function index() {
        $model = new Usuario();
        $resultado = $model->findAll();

        $this->set(array("resultado", "title_for_layout"), array($resultado, "Lista Usuarios - Sistema de Eventos"));
    }

    function buscacidade($params = NULL) {
        header('Content-type: application/json');
        $model = new Cidade();
        $id = (int) $params;
        if ($id === 0) {
            $result = $model->find2(array('conditions' =>
                array('nome like' => "$params%"),
                'limit' => 8,
                'order' => array('nome', 'uf')));
            $json = "{ \"cidades\" : [\n";
            foreach ($result as $value) {
                $json .= "{ \"id\" : " . (int) $value['id'] . ",\n";
                $json .= " \"uf\" : \"{$value['uf']}\",\n";
                $json .= " \"nome\" : \"{$value['nome']}\"},\n";
            }
            $json = substr($json, 0, -2);
            $json .= ']}';
        } else {
            $result = $model->find($id);
            $json = "{ \"cidades\" : [\n";
            $json .= "{ \"id\" : " . (int) $result->id . ",\n";
            $json .= " \"uf\" : \"{$result->uf}\",\n";
            $json .= " \"nome\" : \"{$result->nome}\"}";
            $json .= ']}';
        }
        echo $json;

        $this->autoLayout = FALSE;
        $this->autoRender = FALSE;
    }

}

?>
